package com.rockwell.sniffyhunter.utils;

import org.opencv.core.Point;

public interface IDetector {
	public static float FOV_WIDTH_BOUNDARY = 0.95f;
	public static float FOV_HEIGHT_BOUNDARY = 0.15f;
	
	public static float FOV_LOWER_WIDTH_BOUNDARY_MAZE_EXIT = 0.50f; // initially 35
	public static float FOV_UPPER_WIDTH_BOUNDARY_MAZE_EXIT = 0.99f;
	public static float FOV_LOWER_HEIGHT_BOUNDARY_MAZE_EXIT = 0.01f;
	public static float FOV_UPPER_HEIGHT_BOUNDARY_MAZE_EXIT = 0.99f;
	
	public static float FOV_LOWER_WIDTH_BOUNDARY_MAZE = 0.01f;
	public static float FOV_UPPER_WIDTH_BOUNDARY_MAZE = 0.99f;
	public static float FOV_LOWER_HEIGHT_BOUNDARY_MAZE = 0.01f;
	public static float FOV_UPPER_HEIGHT_BOUNDARY_MAZE = 0.99f;

	public static float TREASURE_CENTER_TOLERANCE = 0.2f;
	public static float TREASURE_CENTER_POSITION_X = 0.65f;
	public static float TREASURE_CENTER_POSITION_Y = 0.5f;
	
	public static float OBSTACLE_CENTER_TOLERANCE = 0.3f;
	public static float OBSTACLE_CENTER_POSITION_X = 0.6f;
	public static float OBSTACLE_CENTER_POSITION_Y = 0.5f;
	
	public static int[] MIN_RADIUS = {
										10, // Treasure
										30, // Obstacle
										30, // Maze 1
										30, // Maze 2
										30, // Maze 3
										50, // Drop Zone
										30 // Maze Exit
	};
	
	public boolean isPresent();
	public Point getDrift();
	public Point getCenter();
	public void onDetect(boolean present, Point center, float radius, int length, int width);
}
